Memory devices are typically provided as internal, semiconductor, integrated circuits in computers or other electronic devices. There are many different types of memory, including random-access memory (RAM), read only memory (ROM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), and flash memory.
Flash memory devices (e.g., NAND, NOR, etc.) have developed into a popular source of non-volatile memory for a wide range of electronic applications. Non-volatile memory is memory that can retain its data values for some extended period without the application of power. Flash memory devices typically use a one-transistor memory cells. Changes in threshold voltage of the cells, through programming (which is sometimes referred to as writing) of charge-storage structures (e.g., floating gates or charge traps) or other physical phenomena (e.g., phase change or polarization), determine the data value of each cell. Common uses for flash memory and other non-volatile memory include personal computers, personal digital assistants (PDAs), digital cameras, digital media players, digital recorders, games, appliances, vehicles, wireless devices, mobile telephones, and removable memory modules, and the uses for non-volatile memory continue to expand.
A NAND flash memory device is a common type of flash memory device, so called for the logical form in which the basic memory cell configuration is arranged. Typically, the array of memory cells for NAND flash memory devices is arranged such that the control gate of each memory cell of a row of the array is connected together to form an access line, such as a word line. Columns of the array include strings (often termed NAND strings) of memory cells connected together in series between a pair of select transistors, e.g., a source select transistor and a drain select transistor. Each source select transistor is connected to a source, while each drain select transistor is connected to a data line, such as column bit line. A “column” may refer to memory cells that are commonly coupled to a local data line, such as a local bit line. It does not require any particular orientation or linear relationship, but instead refers to the logical relationship between memory cell and data line.
Programming typically involves applying a program voltage to one or more selected access lines, e.g., using a driver, such as an access line driver. For example, a driver might be coupled to what may be referred to as the beginning of the access line. When a voltage is applied to an access line, there is typically a voltage delay along the length of an access line due to resistive and capacitive effects (commonly referred to as an RC delay). The RC delay increases with increasing distance from the beginning of the access line. This can cause the memory cells (e.g., target memory cells targeted for programming) along the length of the access line to program at different rates, with the memory cells closest to beginning of access line programming faster than those memory cells further away from the beginning of the access line.
For example, the target memory cells might be programmed by applying a program voltage pulse to the access line and determining whether any target memory cells remain unprogrammed. If any target memory cells remain unprogrammed, the target memory cells that are programmed are inhibited from further programming and a subsequent program voltage pulse, obtained by increasing the preceding program voltage pulse by a voltage step, is applied to the access line, and it is determined whether any target memory cells remain unprogrammed. This might be repeated until a threshold number of target memory cells are programmed, for example.
The memory cells that program more slowly, e.g., due to their increased distance from the beginning of the access line, might require a larger number program voltage pulses, with subsequently increasing voltages, and thus might ultimately determine the number program voltage pulses applied to the access line. The increased number of program voltage pulses, with subsequently increasing voltages, can increase the effects of program disturb on memory cells that are that are closer the beginning of the access line that are already programmed.
For the reasons stated above, and for other reasons stated below which will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for alternatives to programming memory cells coupled to a given access line.